package demo;

import demo.pkg.Proxy;

/**
 * 代理模式
 * 为其他对象提供一种代理，以控制对这个对象的访问
 * @author ZhouWeiBo
 * @create 2022/6/7
 */
public class App {
    public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException {
        /**
         *  在本类中访问不到Entity类
         *  idea报错 ：
         * 'demo.pkg.Entity' is not public in 'demo.pkg'. Cannot be accessed from outside package
         */
        //demo.pkg.Entity entity = new demo.pkg.Entity();

        /* 因此通过代理类才能访问到Entity信息 */
        Proxy entityProxy = new Proxy();
        entityProxy.saySomething();
        /* 代理模式 + 装饰器模式 */
        entityProxy.saySomethingMore();
    }
}
